package org.ocelot.tunes4j.taggers;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.ocelot.tunes4j.beans.AudioObject;

import cn.cooper.id3.MP3File;



public class YajilTaggerImpl implements Tagger {

	private Log log = LogFactory.getLog(this.getClass());
	
	@Override
	public AudioObject parse(File sourceFile) {
		AudioObject mp3Bean = null;
		MP3File mp3file;

		mp3Bean = new AudioObject();
		mp3Bean.setPath(sourceFile.getParent());
		mp3Bean.setFileName(sourceFile.getName());
		try {
			mp3file = new MP3File(sourceFile, "r",true);
			if(mp3file.hasID3v2Tag){
				mp3Bean.setArtist(mp3file.readID3v2Tag().getArtist());
				mp3Bean.setTitle(mp3file.readID3v2Tag().getTitle());
				mp3Bean.setAlbum(mp3file.readID3v2Tag().getAlbum());
			}else if(mp3file.hasID3v1Tag){
				mp3Bean.setArtist(mp3file.readID3v1Tag().getArtist());
				mp3Bean.setTitle(mp3file.readID3v1Tag().getTitle());
				mp3Bean.setAlbum(mp3file.readID3v1Tag().getAlbum());
			}

		} catch (FileNotFoundException e) {
			System.out.println("Error en el archivo: " + sourceFile.getPath());
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("Error en el archivo: " + sourceFile.getPath());
			e.printStackTrace();
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("Error en el archivo: " + sourceFile.getPath());
			e.printStackTrace();
		} catch (Exception e) {
			System.out.println("Error en el archivo: " + sourceFile.getPath());
			e.printStackTrace();
		}
		
		return mp3Bean;
	}

	@Override
	public void save(File sourceFile, AudioObject bean) {
		// TODO Auto-generated method stub
		
	}

}
